Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

502
Vistas
AWS S3 y Django devuelven "Se produjo un error (Acceso denegado) al llamar a la operación PutObject"

Estoy tratando de configurar el almacenamiento de archivos multimedia y estáticos en un depósito de AWS S3, en una aplicación de Django, y aparece el siguiente error cuando intento ejecutar python manage.py collectstatic para colocar los archivos estáticos en el depósito:

botocore.exceptions.ClientError: Se produjo un error (Acceso denegado) al llamar a la operación PutObject: Acceso denegado

Estoy ejecutando almacenamientos boto3 y django. Revisé las otras respuestas aquí y probé las ideas allí primero. Mi clave de acceso, etc. es correcta, ya que puedo conectarme a SES OK. Tengo CORS configurado en el depósito.

Mi política de depósitos es

 { "Id": "Policyxxx", "Version": "2012-10-17", "Statement": [ { "Sid": "Stmtxxx", "Action": "s3:*", "Effect": "Allow", "Resource": [ "arn:aws:s3:::bucketname/*", "arn:aws:s3:::bucketname" ], "Principal": { "AWS": [ "arn:aws:iam::xxxx:user/xxxx" ] } } ] }

Mi usuario de IAM tiene AmazonS3FullAccess como se muestra a continuación:

 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "*" } ] }

También intenté crear mi propia política y adjuntarla al usuario de IAM de la siguiente manera:

 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": [ "arn:aws:s3:::bucketname", "arn:aws:s3:::bucketname/*" ] } ] }

Ninguno de estos funciona, así que claramente me estoy perdiendo algo.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Yo tenía el mismo error. Y, a diferencia de usted, estaba usando el usuario correcto con las políticas de IAM adecuadas.

En la salida de:

 python manage.py collectstatic

antes del error de pila AccessDenied, pude leer este mensaje de django-storage lib :

Advertencia para el usuario: el comportamiento predeterminado de S3Boto3Storage no es seguro y cambiará en django-storages 2.0. De forma predeterminada, los archivos y los cubos nuevos se guardan con una ACL de 'lectura pública' (lectura pública global). La versión 2.0 usará de manera predeterminada la ACL del depósito. Para optar por el nuevo comportamiento, establezca AWS_DEFAULT_ACL = Ninguno; de lo contrario, para silenciar esta advertencia, establezca explícitamente AWS_DEFAULT_ACL. "El comportamiento predeterminado de S3Boto3Storage no es seguro y cambiará"

Esto me llevó a intentarlo.

Configurando :

 AWS_DEFAULT_ACL = None

Luego, los archivos estáticos se recopilaron en el cubo.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda